home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / source.lha / Geomview / src / bin / pssnap / next / PSSnapshot.m < prev   
Text File  |  1992-10-08  |  1KB  |  73 lines

  1. #import <stdio.h>
  2. #import "camera.h"
  3. #import "geom.h"
  4. #import "ooglutil.h" 
  5. #import "pssnap.h"
  6. #import "PSSnapshot.h"
  7.  
  8. @implementation PSSnapshot
  9.  
  10. - save:sender
  11. {
  12.     FILE *outfile = stdout, *infile = stdin;
  13.     Camera *c;
  14.     Geom *o, *onew;
  15.     int flag;
  16.  
  17.     if ((outfile = fopen([filename stringValueAt:0], "w")) == NULL) {
  18.         OOGLError(1, "Unable to open output file %s.",
  19.               [filename stringValueAt:0]); 
  20.         exit(1);
  21.     }
  22.  
  23.     printf("(write geometry - targetgeom)\n");
  24.     fflush(stdout);
  25.     o = GeomFLoad(stdin, NULL);
  26.  
  27.     printf("(write camera - targetcam)\n");
  28.     fflush(stdout);
  29.     c = CamFLoad(NULL, stdin, "stdin");
  30.  
  31.     flag = 0;
  32.     flag |= [DrawEdges state] ? PS_EDGES : 0;
  33.     flag |= [DrawFaces state] ? PS_FACES: 0;
  34.     flag |= [UseColor state] ? PS_COLOR : 0;
  35.  
  36.     onew = PolyProject(o, c);
  37.  
  38.       PolyToPSInit(outfile, flag);
  39.       PolyToPS(onew, outfile, flag);
  40.       fprintf(outfile, "showpage\n");
  41.  
  42.       fclose(outfile);
  43.  
  44.     GeomDelete(o);
  45.     GeomDelete(onew);
  46.     CamDelete(c);
  47.  
  48.     return self;
  49. }
  50.  
  51. -saveas:sender
  52. {
  53.  
  54.   SavePanel *savepanel;
  55.  
  56.   savepanel = [SavePanel new];
  57.   if (![savepanel runModal]) return self;
  58.  
  59.   [filename setStringValue:[savepanel filename] at:0];
  60.   [self save:0 ];
  61.  
  62.   return self;
  63. }
  64.  
  65. -appDidInit:sender
  66. {
  67.     [NXApp activateSelf:1];
  68.     return self;
  69. }
  70.  
  71.  
  72. @end
  73.